Digital sine-wave generators are commonly used for generating an oscillating sinusoidal signal in a variety of electronic applications. In mobile stations, for instance, digital sine-wave generators are typically used for generating simple ringing tones or DTMF (Dual-Tone-Multi-Frequency) tones among other things.
In accordance with the prior art, a sinusoidal signal can be generated digitally, for instance, by using a signal waveform stored in a lookup table. The method is commonly used in a plurality of electronic devices, such as mobile stations, in which sine-wave samples are stored in the tables. It is also possible to store in the tables other waveforms, such as tone samples. The method typically employs a counter to generate a table address, at which a desired tone sample can be found when needed. However, if there are a large number of stored samples, the tables may become very large, which requires that the memory capacity of the electronic device be large.
The size of the table can yet be minimized by storing in the table a sample, whose length is only one quarter of the wave length of the sinusoidal signal. By combining these quarters of the sinusoidal signal it is possible to generate various DTMF tones, for instance. In addition, it is possible to store coarse samples and to interpolate finer samples. Nevertheless, the problem remains that the memory capacity of the electronic device is used excessively. Currently, one major criterion for designing electronic devices, in particular, mobile stations, is to minimize the use of memory capacity.
A sinusoidal signal can also be generated digitally by using a prior art digital sine-wave oscillator. Typical sine-wave oscillators require at least one coefficient, i.e. for each sample there is at least one multiplication operation, which determines a frequency to be generated. Because the digital sine-wave oscillators typically have a predetermined, arithmetic total term length, the coefficient should be generally quantized, prior to generating the sinusoidal signal, to have a length that matches with space allocated to it. However, the quantization of the coefficient distorts the sinusoidal signal to be generated, which affects both the frequency and amplitude of the signal. Hence, it is generally difficult to generate precisely a frequency in the vicinity of a low frequency or a half sampling rate.
The effect of the quantization can be reduced by increasing filter bit widths so as to achieve sufficient performance. However, a problem arises that the method considerably increases computational complexity. In addition, bit width modifications and scalings generally restrict parameterization of a sinusoidal signal.
The publication “A Simple Recursive Digital Sinusoidal Oscillator with Uniform Frequency Spacing”, The 2001 IEEE International Symposium on Circuits and Systems, Part:2, 2001, by M. M. AI-Ibrahim, pp. 689 to 692, presents a digital sine-wave oscillator used in telecommunications applications, which oscillator is arranged to generate sinusoidal signals, advantageously low-frequency sinusoidal signals with even frequency spacing. A problem with the sine-wave oscillator of the publication is, however, that it employs complicated complex number arithmetic for generating a sinusoidal signal. If an algorithm implementing the functionality according to the publication is executed with a digital signal processor DSP, for instance, it will be necessary to perform several command cycles for each output sample.